package ar.uade.distribuidas.tpo.cpe.dao;


import java.util.LinkedList;
import java.util.List;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

import ar.uade.distribuidas.tpo.base.dominiodto.CondicionDeVentaDTO;
import ar.uade.distribuidas.tpo.base.dominiodto.FinanciacionDTO;
import ar.uade.distribuidas.tpo.base.dominiodto.PoliticaDTO;



public class CondicionDeVentaXmlParser {
	private static CondicionDeVentaXmlParser instancia;

	public static CondicionDeVentaXmlParser getInstancia(){
		if(instancia == null){
			instancia = new CondicionDeVentaXmlParser();
			
		}
		return instancia;
	}
	



		/*
	public Set<CondicionDeVenta> recuperarCondicionDeVentas(){
		Set<CondicionDeVenta> CondicionDeVentas = new HashSet<CondicionDeVenta>();
		NodeList nodos = doc.getElementsByTagName("CondicionDeVenta");
		for(int i = 0; i < nodos.getLength(); i++){
			if(nodos.item(i).hasChildNodes()){
				CondicionDeVentas.add(mapUCondicionDeVenta((Element)nodos.item(i)));
			}
		}
		return CondicionDeVentas;
	}
	*/
	
	
	
	/*public List<String> getParameterListFromObjectString(String line){ 
		
		List<String> result = new LinkedList<>();
		int i = line.indexOf('=');
		result.add(line.substring(line.indexOf('['),i));
		
		while (i<line.length()){
			
			result.add(line.substring(line.indexOf (',',i), line.indexOf(ch) 
			
		}
		
		return null;
		
	}
	*/
	public void parsearCondicionDeVentas(CondicionDeVentaDTO condicionDeVenta, Element root){
		
		Document doc = root.getOwnerDocument();
		Element padre = doc.createElement("CondicionesDeVenta");
		root = doc.getDocumentElement();
		Element medioPago = doc.createElement(condicionDeVenta.getMediopago().getNombreMedio());
		Element descuento = doc.createElement("Descuento");
		descuento.setTextContent(String.valueOf(condicionDeVenta.getMediopago().getDescuento()));
		medioPago.appendChild(descuento);
		padre.appendChild(medioPago);
		
		/*
		if(condicionDeVenta.getPoliticas()!= null && !condicionDeVenta.getFinanciaciones().isEmpty()){  //TODO: parsear la lista de PoliticasDTO con sus prametros
																									 //usando el toString
		
			for(PoliticaDTO finan : condicionDeVenta.getPoliticas()){
				Element politica = doc.createElement("CondicionDeVenta");
				padre.appendChild(politica);
				Element cantDias = doc.createElement("CantidadDias");
				cantDias.setTextContent(String.valueOf(finan.getDias()));
				politica.appendChild(cantDias);
				Element recargo = doc.createElement("Recargo");
				recargo.setTextContent(String.valueOf(finan.getRecargo()));
				politica.appendChild(recargo);
			}
		}
		*/
		root.appendChild(padre);
	}

}
